
package Sintactico;
import Enumerados.tipoIdentificador;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;

import java.util.Iterator;
import java.util.Set;

/**
 *
 * @author
 *
 * Almaraz Hernández, Jesús
 * Bécares García, Javier
 * Calzada Martínez, Jesús
 * Campos Cantero, Pablo
 * Gómez Galindo, Alejandro
 * Ortiz Sánchez, Enrique
 *
 * 
 */
public class tablaSimbolos {
    

    private Hashtable<String, propiedadesSimbolo> tabla;

    public tablaSimbolos() {
            tabla=new Hashtable<String,propiedadesSimbolo>();
    }
    public boolean setIdentificador(String ID,int dir, tipoIdentificador tipo){
        if(!estaID(ID)){
            tabla.put(ID, new propiedadesSimbolo(dir,tipo));
            return true;
        }
        return false;
    }
    public boolean estaID(String ID){
        //Set h=new HashSet();
       // int x=h.size();
       // boolean b=h.contains(ID);
        if (tabla.containsKey(ID)) return true;
        return false;
    }
    public int getDir(String ID){
        if(tabla.containsKey(ID))
            return tabla.get(ID).getDireccion();
        return -1;
    }
    public tipoIdentificador getTipo(String ID){
        if(tabla.containsKey(ID))
            return tabla.get(ID).getTipo();
        return tipoIdentificador.TERR;
    }
    public ArrayList getVariables(){
        ArrayList variables= new ArrayList();
       // Set s = new HashSet();
        Set s=tabla.keySet();
        Iterator i=s.iterator();
        while (i.hasNext()){
            String s1=(String)i.next();
            variables.add(s1);
       }
        Collections.sort(variables);
        return variables;
      }

}



